@ @ @  @ @ @ ####### @   @ @  @ @ @ @ ## # @ && && && &&&& && @ & && &&& && && && && && && @@ & && %%%%% %%% %%% %%% %%% %% && %%% %%% v1.4 && & %%%%%%%

This program was written in frustration of that some constructs in LaTeX are sometimes non-intuitive, and easy to forget. It is *not* a replacement for the built-in checker in LaTeX; however, it catches some typographic errors LaTeX oversees. In other words, it is Lint for LaTeX. Filters are also provided for checking the LaTeX parts of CWEB documents.

While written on an Amiga, it is written in ANSI C, so you can use this at your UN*X/MSDOS/whatever site also. Full source included.

The program also supports output formats suitable for further processing by editors or other programs, making errors easy to catch. These are also fully customizable. An ARexx script for interfacing with SCMSG (and via that, other editors) is included. A special script for CygnusED and an experimental script for GoldED is included. The program can also produce output suitable for Emacs.

The program itself does not have any machine requirements, Amiga and MSDOS binaries are included. Of course, you’ll need ARexx and SCMSG to benefit from the ARexx scripts.

Feature list ~~~~~~~~~~~~ o Supports over 30 warnings. Warnings include: - Commands terminated with space. Ignores \tt, etc. - Space in front of references instead of ~. - Forgetting to group parenthesis characters when sub-/superscripting. - Italic correction ("\/") mistakes (double, missing, unnecessary). - Parenthesis and environment matching. - Ellipsis detection; also checks whether to use \dots, \cdots or \ldots. - Enforcement of normal space after abbreviation. Detect most abbreviations automagically. - Enforcement of end-of-sentence space when the last sentence ended with capital letter. - Mathmode on/off detection. - Quote checking, both wrong types (") and wrong direction. - Recommends splitting three quotes in a row. - Searching for user patterns. - Displays comments. - Space in front of \label and similar commands. - Use of "x" instead of $\times$ between numbers. - Multiple spaces in input. - Text which may be ignored. - Mathematical operators typeset as variables. o Fully customizable. Intelligent resource format makes it possible to make ChkTeX respect your LaTeX setup. Even command-line options may be specified globally in the ".chktexrc" file. o Supports \input command; both TeX and LaTeX version. Actually includes the files. TEXINPUTS-equivalent search path. o Intelligent warning/error handling. The user may promote/mute warnings to suit his preferences. You may also mute warnings in the header of a file; thus killing much unwanted garbage. o Scripts included for checking CWEB files written in LaTeX. (Requires perl v5). o Supports both LaTeX 2.09 and LaTeX2e. o Flexible output handling. Has some predefined format, but lets the user specify his own format. Uses a "printf()" similar syntax. "lacheck" compatible mode included for interfacing with the AUC TeX Emacs mode. o An ARexx script for interfacing with SCMSG, the SAS/C message browser, is included. Special script included for CygnusED/GoldED, for binding to hotkey. o Amiga Workbench support. Parameters may be passed by shift-clicking the LaTeX files and setting the remaining options in the tooltypes. o Wildcard matching (Amiga only). Matches file patterns internally, thus saving a lot of work. This is, however, platform-specific code - on UNIX boxes this is done by the shell. o Written in ANSI C. configure script included for easy setup and installation on UNIX systems.

Still, it is important to realize that the output from ChkTeX is only intended as a *guide* to fixing faults. However, it is by no means always correct. This means that correct LaTeX code may produce errors in ChkTeX, and vice versa: Incorrect LaTeX code may pass silently through.

New features ~~~~~~~~~~~~ Modifications and additions since v1.3: o The whole subpart containing the error-checking routines has been restructured. This added the following benefits: - We are now *much* more context-sensitive; warnings are to a much larger degree muted/promoted according to whether we are in math-mode or not. - Detects math and verbatim environment (you may configure which are which), and acts accordingly. o Yet more flexible resource format. UNIX systems may now have a *global* resource file; thus saving the individual users a lot of work installing the program. o You may now customize which dashlengths you allow in different contexts. o Removed that silly twirling baton which no-one used anyway. o A few more warnings: - Checks that quotes are used the right way. - Checks for use of "sin" instead of "\sin" in mathmode and similar. o Compiles happily on MSDOS computers; binary included. o Configure script. o Output formats may now be specified globally in the ".chktexrc" file now, for easy access. o Most other suggestions incorporated.

Legal stuff ~~~~~~~~~~~ ChkTeX, documentation, installations scripts, CWEB filters and other materials provided are copyright (c) 1995-96 Jens T. Berger Thielemann, unless explicitly stated otherwise.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Installation ~~~~~~~~~~~~

A few words on installation on various platforms:

Amiga ===== Use the supplied Installer script.

MS-DOS ====== Copy the binary ("ChkTeX.exe") to somewhere in your path, and place the "chktexrc" file in the same directory.

UNIX ==== Type "configure", "make" and finally "make install". If you don’t have superuser privileges and access to system areas, you should type "configure –help" to help you set up correct paths.

Other platforms =============== First of all, you have to copy the "config.h.in" file to a file named "config.h". Then, edit it to reflect your system. Do the same with "ChkTeX.h" (this file has been reduced significantly). If you wish, you may define "DATADIR" to the path you want the global resource file to be put.

Now, I would suggest that you also take a peak at the "OpSys.c" file first, and edit it appropiately, for more comfort. This should not be necessary, though, at least not the first time.

Finally, you may now compile and link all .c files. Define "HAVE_CONFIG_H" to 1 (on the command-line, for instance). If the "config.h" you wish to use has another name, define "CONFIG_H_NAME" to that (in that case, don’t define "HAVE_CONFIG_H".

Put the directory path of the "chktexrc" file in a environment variable named "CHKTEXRC". The files "deweb.in" and "chkweb.in" should be moved to a directory in your path. These files may need further setup, as they haven’t got the location of perl and csh initialized.

Note: You *must* install the new "chktexrc" file; ChkTeX will fail to function unless!

After doing this, you may enhance ChkTeX’ behaviour by reading/editing the ".chktexrc" file.

Availability ~~~~~~~~~~~~ This program will be uploaded to AmiNet and CTAN; thus it can be found at any mirrors of those.

Please note that earlier versions of ChkTeX have been uploaded to Aminet under the same archive name, to keep consistent with Aminet’s policy of keeping versions out of filenames. Please read the file "ChkTeX.readme" (which is in the same directory as the archive) to find out the version number.

I’m now uploading the archive uncompressed to CTAN; however, most of the ftpservers in that network allow you to retrieve a directory compressed in whatever way you prefer. Aminet will as usual receive a LhArc archive.

Mirrors of both networks include (I’ve tried to list only one/country):

Amiga Network (Aminet) ====================== Directory: text/tex/, Name: chktex.lha

Site Directory ftp.wustl.edu (USA (MO)) /pub/aminet ftp.livewire.com.au (Australia) /pub/aminet ftp.luth.se (Scandinavia) /pub/aminet ftp.eunet.ch (Switzerland) /pub/aminet ftp.germany.aminet.org (Germany) /pub/aminet aminet.grolier.fr (France) /pub/aminet ftp.giga.or.at (Austria) /pub/aminet ftp.unina.it (Italy) /pub/aminet ftp.ua.pt (Portugal) /pub/aminet ftp.gui.uva.es (Spain) /pub/aminet ftp.doc.ic.ac.uk (UK) /pub/aminet

Comprehensive TeX Archive Network (CTAN) ======================================== Directory: support/chktex/

Site Directory ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.dante.de (Germany) /pub/tex src.doc.ic.ac.uk (England) /packages/tex/uk-tex kadri.ut.ee (Estonia) /pub/tex ftp.funet.fi (Finland) /pub/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.center.osaka-u.ac.jp (Japan) /CTAN sunsite.icm.edu.pl (Poland) /pub/CTAN ftpserver.nus.sg (Singapore) /pub/zi/TeX ftp.ee.up.ac.za (South Africa) /tex-archive ftp.muni.cz (The Czech Republic) /pub/tex/CTAN wuarchive.wustl.edu (Missouri, USA) /packages/TeX ftp.univie.ac.at (Österreich) /packages/tex dongpo.math.ncu.edu.tw (Taiwan) /tex-archive

Contacting the author ~~~~~~~~~~~~~~~~~~~~~ If you wish to contact me for any reason (scout-badges, more tests, bug reports, suggestions, hellos, smiley’s, etc.), or would like to participate in the development of ChkTeX, write to:

Jens Berger Spektrumvn. 4 N-0666 Oslo Norway

E-mail: <jensthi@ifi.uio.no>

Any signs of intelligent life is welcomed; that should exclude piracy.

Have fun.


This document was generated on February 12, 2023 using texi2html 5.0.